﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio.Clases_BL;
using Capa_Entidad;
public partial class Ventas_wfMedico : System.Web.UI.Page
{
    private static string vOperacion = "C";
  private static Int32 IdEmpleado=0;
   private static Boolean fl_Buscar = false;
  
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //CodPaciente = Request.QueryString["CodPaciente"].ToString();
            vOperacion = (String)Session["Operacion"];

            if (vOperacion == "M")
            {
                //lblNumeroCita.Text = lblNumeroCita.Text + " " + (Int32)Session["IDCita"];
                //Mostra_Cita((Int32)Session["IDCita"]);

                Cargar_Datos_Medico((Int32)Session["IdMedico"]);
                btnBuscar.Enabled = false;
            }
            else
            {
                btnBuscar.Enabled = true;
             //   Blank();
            }
            if (fl_Buscar)
            {
                if (Session["IDEmpleado"] == null)
                {
                    return;
                }
                Cargar_Datos_Empleado((Int32)Session["IDEmpleado"]);
                fl_Buscar = false;
            }



        }
    }
    protected void ASPxButton1_Click(object sender, EventArgs e)
    {
        fl_Buscar = true;
        //  Response.Redirect("wfMedicoListado.aspx", true);
    }
    protected void ASPxButton2_Click(object sender, EventArgs e)
    {
        Response.Redirect("wfMedicoListado.aspx", true);
    }

    void Cargar_Datos_Medico(Int32 Codigo)
    { 
        clsMedicoBL BL_Medico=new clsMedicoBL();
       
        //GEN_MEDICO ENT_Medico=new GEN_MEDICO();
        var consulta = from P in BL_Medico.listar()
                       where P.MED_ID_MEDICO == Codigo
                       select P;

        foreach (var S in consulta)
        {
            txtIdMedico.Text =
            txtColegiatura.Text = S.MED_COLEGIATURA;
           
            Cargar_Datos_Empleado((Int32)S.EMP_ID_EMPLEADO);
            if (vOperacion == "C")
            {
                txtIdMedico.Text = Convert.ToString(BL_Medico.UltimoNumero() + 1);

            }
            else
            {
                txtIdMedico.Text = Convert.ToString(S.MED_ID_MEDICO);
            }
                
        }

        var consulta1 = from P in BL_Medico.listar_Medico_Especialidad(Codigo)
                        select P;

        foreach (var S in consulta1)
        {
           cboEspecialidad.SelectedItem = cboEspecialidad.Items.FindByValue(Convert.ToString(S.ESP_ID_ESPECIALIDAD));
            //cboEspecialidad.SelectedItem.ValueString = Convert.ToString(S.ESP_ID_ESPECIALIDAD);
        }

    }


    void Cargar_Datos_Empleado(Int32 codigo)
    {
        if (codigo!=0)
        {
            clsGen_EmpleadoBL BL_Paciente = new clsGen_EmpleadoBL();
            var consulta = from P in BL_Paciente.listar()
                           where P.EMP_ID_EMPLEADO == codigo
                           select P;
            foreach (var S in consulta)
            {

                txtNomApe.Text = S.EMP_APELLIDO_PATERNO + " " + S.EMP_APELLIDO_MATERNO + " " + S.EMP_NOMBRES;
                txtDni.Text =S.EMP_DNI;
             //   cboEspecialidad.SelectedItem = cboEspecialidad.Items.FindByValue(S.TCT_ID_TIPO);
                IdEmpleado=S.EMP_ID_EMPLEADO;
            }
            if (fl_Buscar)
            {
                clsMedicoBL BL_Medico = new clsMedicoBL();
                txtIdMedico.Text =Convert.ToString(BL_Medico.UltimoNumero() + 1);
            }
           
           
            
        }

    }

    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        if (validarInsercion() == true)
        {
            clsMedicoBL BL_Medico = new clsMedicoBL();
            GEN_MEDICO ENT_Medico = new GEN_MEDICO();

            if (txtIdMedico.Text.Length == 0)
            {
                //Util.showmsg("Escoja un empleado para asignar el codigo de medico", this.Page);
                lblMensaje.Text = "Escoja un empleado para asignar el codigo de medico";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                return;
            }
            GEN_ESPECIALIDAD ENT_Especialidad = new GEN_ESPECIALIDAD();
            clsEspecialidadBL BL_Especialidad = new clsEspecialidadBL();

            ENT_Medico.EMP_ID_EMPLEADO = IdEmpleado;
            ENT_Medico.MED_ID_MEDICO = Convert.ToInt32(txtIdMedico.Text);
            ENT_Medico.MED_COLEGIATURA = txtColegiatura.Text;

            if (vOperacion == "C")
            {
                //verifica si el medico ya existe
                var consulta = from P in BL_Medico.listar()
                               where P.EMP_ID_EMPLEADO == IdEmpleado
                               select P.MED_ID_MEDICO;

                if (consulta.Count() > 0)
                {
                    //Util.showmsg("El empleado ya existe como Medico!!!", this.Page);
                    lblMensaje.Text = "El empleado ya existe como Medico!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                    return;
                }

                if (BL_Medico.Insertar(ENT_Medico))
                {
                    if (BL_Medico.Insertar_Medico_Especialidad(ENT_Medico, ENT_Especialidad, Convert.ToInt32(cboEspecialidad.SelectedItem.Value)))
                    {

                    }
                    else
                    {
                        //Util.showmsg("Error: Nose Pudo registrar Medico Especialidad!!!", this.Page);
                        lblMensaje.Text = "Error: Nose Pudo registrar Medico Especialidad!!!";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                    }

                    //Util.showmsg("Se regsitro Un Nuevo Medico", this.Page);
                    lblMensaje.Text = "Se regsitro Un Nuevo Medico";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                    txtColegiatura.Text = "";
                    cboEspecialidad.Text = "";
                    txtDni.Text = "";
                    txtIdMedico.Text = "";
                    txtNomApe.Text = "";
                }
                else
                {
                    //Util.showmsg("Error: Nose Pudo registrar un nuevo medico!!!", this.Page);
                    lblMensaje.Text = "Error: Nose Pudo registrar un nuevo medico!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }

            }

            else
            {
                if (BL_Medico.Modicar(ENT_Medico))
                {
                    //Util.showmsg("Se Modifico Medico!!!", this.Page);
                    lblMensaje.Text = "Se Modifico Medico!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }
                else
                {
                    //Util.showmsg("Error: No Se Modifico Medico!!!", this.Page);
                    lblMensaje.Text = "Error: No Se Modifico Medico!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }

            }
        }

    }

    private bool validarInsercion()
    {
        bool Bool = true;

        if (txtIdMedico.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Id Medico debe ser ingresado", this.Page);
            lblMensaje.Text = "El Id Medico debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboEspecialidad.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Especialidad debe ser ingresada", this.Page);
            lblMensaje.Text = "La Especialidad debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtColegiatura.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Colegiatura debe ser ingresada", this.Page);
            lblMensaje.Text = "La Colegiatura debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }

        return Bool;
    }
}